package TP2.modelo;
import java.awt.*;
import ar.uba.fi.algo3.titiritero.ObjetoVivo;

public abstract class Municion extends Movil implements ObjetoVivo{

	/**
	 * 
	 */
	private static final long serialVersionUID = 3952702287379195798L;
	private Danio poderDeDestruccion;
	private Avion disparador;
	
	public Municion(){
		super();
		radioDeColision = 1;
		velocidad = 6;
	}
	
	public void setDisparador(Avion unDisparador) {
		disparador = unDisparador;
	}
	
	public Avion getDisparador() {
		return disparador;
	}
	
	public void setPoderDeDestruccion(Danio unPoderDeDestruccion){
		poderDeDestruccion = unPoderDeDestruccion;
	}
		
	public Danio getPoderDeDestruccion() {
		return poderDeDestruccion;
	}
	
	public void vivir(){ 
		if(estaDestruido) return;
		Point posicionActual = this.getPosicion();
		Point limiteMaximo = limitesDeMovimiento.getLimiteMaximo();
		Point limiteMinimo = limitesDeMovimiento.getLimiteMinimo();
		
		if ((((posicionActual.getY())-(limiteMinimo.getY())) <= (radioDeColision)) || 
				(((limiteMaximo.getY())-(posicionActual.getY())) <= (radioDeColision))){
			this.destruir();
			return;
		};
		
		if((disparador.getPosicion()).getY() >= posicionActual.getY())
			posicionActual.translate(0, (-1)*velocidad);
		
		if((disparador.getPosicion()).getY() < posicionActual.getY())
			posicionActual.translate(0, velocidad);
		
		this.setPosicion(posicionActual);
	}
	
}
